Digital communications networks, such as local or wide area networks (LANs, WANs), the Internet, etc., are well-known networks for permitting information stored at one location to be distributed to one or more users situated at geographically different locations. The information (also referred to herein as a “message” or “packet”) can take any of a number of forms including, but not limited to, text, still image, audio, and video information.
Most digital communications networks operate under the principal of point-to-point or connection-oriented communications (e.g., such as transmission control protocol over internet protocol (TCP/IP)), wherein information is exchanged discretely between one requesting party and one responding party. This manner of connectivity ensures reliability by establishing a connection between each and every receiving system using a connection based protocol. If communication with multiple systems is desired, unique connections are formed with each system, in turn. Unfortunately, the overhead associated with creating and managing a connection between a sending system and a number of receiving systems is prohibitively expensive when there are a large number of receiving systems or the transactions are numerous.
Methods have been developed for reducing the overhead associated with connection based protocols, by using connectionless protocols, such as UDP (user datagram protocol) over an IP network. These connectionless protocols typically rely on a broadcast or “multicast” model wherein a single message is broadcast to a multiple receiving systems without forming a connection with the individual systems. Essentially, multicasting enables a source to transmit messages to a plurality of hosts which have been collectively identified by a single IP destination address, rather than to each hosts' unique IP address individually.
IP multicasting is a receiver-based concept; receivers join a particular multicast session group by using a protocol such as the Internet Group Management Protocol (IGMP) to inform a multicast-enabled network device or other network device on their subnetwork of their intention. Traffic is then delivered to all members of that group by the network infrastructure. To verify current membership, the local multicast network device periodically sends an IGMP host membership query to the “all-hosts” group.
For delivery of a multicast packet from the source to the destination nodes on other networks, multicast network devices need to exchange the information they have gathered from the group membership of the hosts directly connected to them. There are many different algorithms and protocols for exchanging this routing information, such as Distance Vector Multicast Routing Protocol (DVMRP), Multicast extension to Open Shortest Path First (MOSPF), and Protocol Independent Multicast (PIM). Based on the routing information obtained through one of these protocols, whenever a multicast packet is sent out to a multicast group, multicast-enabled network devices decide whether to forward that packet to their network(s) or not. Finally, the network device determines whether there is any member of that particular group on its physically attached networks based on the IGMP information and decides whether to forward the packet.
The multicast approach eliminates the undesirable overhead associated with forming connections with each system, but suffers from the inability to guarantee receipt of messages to all systems. For IP networks, multicast is unreliable by design in order to reduce overhead of sending packets to multiple destinations.
Modified messaging protocols have been developed to address the problem of high reliability in the context of large messages consisting of hundred of thousands or millions of packets. Such protocols send data from a sending system to multiple receiving systems connected in an IP network using IP multicast that reduces sending overhead. Current solutions focus on high reliability for relatively few destinations as would occur in video conferencing or dynamic whiteboard applications or may focus on many destinations for large data sets, such as streaming audio or video data, where dropping some packets is not viewed as a serious problem.
Unfortunately, these solutions to the inherent unreliability of IP multicast do not address the need for real-time management of the multicast feeds from a monitoring perspective, while maintaining low overhead and resource requirements. There is therefore a need for a multicast management system that will enable efficient multicasting of messages while concurrently providing management monitoring functionality to assist in network administration and troubleshooting.